home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1984-04-24 | 6.0 KB | 180 lines |
- 10 DEFINT A-Z
- 20 DIM RE(25), CE(25), MV(25), VM(10), MC(25), CM(10)
- 30 KEY OFF : SCREEN 0 : WIDTH 40 :CLS
- 40 F = 1
- 50 RANDOMIZE CVI(MID$(TIME$,7,2))
- 60 VM(1) = 1: VM(2) = 1: VM(3) = 1: VM(4) = 1: VM(5) = 2
- 70 VM(6) = 2: VM(7) = 2: VM(8) = 3: VM(9) = 3: VM(10) = 5
- 80 CM(1) = 25:CM(2) =25: CM(3) =25: CM(4) =25: CM(5)=157
- 90 CM(6) = 157: CM(7) =157: CM(8) = 15:CM(9)=15:CM(10) = 2
- 100 PRINT
- 110 PRINT "CATCH88 -- COPYRIGHT Richard K. Collins"
- 120 PRINT " January 1982"
- 121 PRINT :PRINT :PRINT :PRINT
- 125 PRINT : PRINT " THIS PROGRAM FOR USE ONLY BY "
- 126 PRINT "MEMBERS OF THE CAPITAL PC USERS GROUP."
- 130 PRINT :PRINT :PRINT
- 140 PRINT " Press 4 for 40 columns"
- 150 PRINT " Press 8 for 80 columns
- 160 X$ = INKEY$
- 170 IF X$ = "4" THEN GOSUB 1230 : GOTO 200
- 180 IF X$ = "8" THEN GOSUB 1390 : GOTO 200
- 181 IF X$ = "Q" THEN CLS :END
- 185 IF X$ = "r" THEN GOSUB 3000
- 190 GOTO 160
- 200 X$ = INKEY$
- 210 IF X$ = "e" THEN MM=21 : LV=15 : SLV=2 : NE=25-2*F : GOTO 270
- 220 IF X$ = "m" THEN MM=21 : LV=10 : SLV=7 : NE=20-2*F : GOTO 270
- 230 IF X$ = "h" THEN MM=21 : LV=10 : SLV=10: NE=15-2*F : GOTO 270
- 240 IF X$ = "v" THEN MM=21 : LV=5 : SLV=15: NE=10-F : GOTO 270
- 250 IF X$ = "Q" THEN CLS : END
- 260 GOTO 200
- 270 CLS : LOCATE 12,20,0 : PRINT "Good Luck !";
- 275 HITS = 0: MISSES =0
- 280 FOR I = 1 TO 250 : NEXT I
- 290 CLS
- 300 LOCATE 1,SC,0 :PRINT "SCORE 0";
- 310 LOCATE 1,RM,0 :PRINT "REMAINING ";MM
- 320 IF SIZE = 40 THEN 370
- 330 S$ = " 11223344556677889900qqwweerrttyyuuiiooppaassddffgghhjjkkll;;zzxxccvvbbnnmm,,.."
- 340 LOCATE 25,1,0 : PRINT S$;
- 350 LOCATE 24,1,0 :PRINT " ";:FOR I = 1 TO 39 :PRINT CHR$(223);CHR$(223); :NEXT
- 360 GOTO 400
- 370 S$ = "1234567890qwertyuiopasdfghjkl;zxcvbnm,."
- 380 LOCATE 25,1,0 : PRINT S$;
- 390 LOCATE 24,1,0 : FOR I = 1 TO 39 : PRINT CHR$(223); :NEXT
- 400 OLDPOS = 20 :NEWPOS = 20 : GOSUB 930
- 410 FOR N = 1 TO NE : GOSUB 1050 :NEXT
- 420 NP = 1
- 430 REM
- 440 RN = RE(NP) + 1 : CN = CE(NP)
- 450 IF RN < 23 THEN LOCATE RN-1,CN,0 : PRINT " "; :LOCATE RN,CN,0 : PRINT CHR$(MC(NP)); : RE(NP) = RN : GOTO 480
- 460 LOCATE 22,CN,0 : PRINT " "; : N = NP
- 470 IF (CN = NEWPOS) OR (CN = NEWPOS+1) THEN GOSUB 1100:GOSUB 1050 ELSE GOSUB 1020
- 480 X$ = INKEY$
- 490 IF X$ = "Q" THEN CLS :END
- 500 IF X$ ="1" THEN NEWPOS =1: GOSUB 930
- 510 IF X$ ="2" THEN NEWPOS =2: GOSUB 930
- 520 IF X$ ="3" THEN NEWPOS =3: GOSUB 930
- 530 IF X$ ="4" THEN NEWPOS =4: GOSUB 930
- 540 IF X$ ="5" THEN NEWPOS =5: GOSUB 930
- 550 IF X$ ="6" THEN NEWPOS =6: GOSUB 930
- 560 IF X$ ="7" THEN NEWPOS =7: GOSUB 930
- 570 IF X$ ="8" THEN NEWPOS =8: GOSUB 930
- 580 IF X$ ="9" THEN NEWPOS =9: GOSUB 930
- 590 IF X$ ="0" THEN NEWPOS =10: GOSUB 930
- 600 IF X$ ="q" THEN NEWPOS =11: GOSUB 930
- 610 IF X$ ="w" THEN NEWPOS =12: GOSUB 930
- 620 IF X$ ="e" THEN NEWPOS =13: GOSUB 930
- 630 IF X$ ="r" THEN NEWPOS =14: GOSUB 930
- 640 IF X$ ="t" THEN NEWPOS =15: GOSUB 930
- 650 IF X$ ="y" THEN NEWPOS =16: GOSUB 930
- 660 IF X$ ="u" THEN NEWPOS =17: GOSUB 930
- 670 IF X$ ="i" THEN NEWPOS =18: GOSUB 930
- 680 IF X$ ="o" THEN NEWPOS =19: GOSUB 930
- 690 IF X$ ="p" THEN NEWPOS =20: GOSUB 930
- 700 IF X$ ="a" THEN NEWPOS =21: GOSUB 930
- 710 IF X$ ="s" THEN NEWPOS =22: GOSUB 930
- 720 IF X$ ="d" THEN NEWPOS =23: GOSUB 930
- 730 IF X$ ="f" THEN NEWPOS =24: GOSUB 930
- 740 IF X$ ="g" THEN NEWPOS =25: GOSUB 930
- 750 IF X$ ="h" THEN NEWPOS =26: GOSUB 930
- 760 IF X$ ="j" THEN NEWPOS =27: GOSUB 930
- 770 IF X$ ="k" THEN NEWPOS =28: GOSUB 930
- 780 IF X$ ="l" THEN NEWPOS =29: GOSUB 930
- 790 IF X$ =";" THEN NEWPOS =30: GOSUB 930
- 800 IF X$ ="z" THEN NEWPOS =31: GOSUB 930
- 810 IF X$ ="x" THEN NEWPOS =32: GOSUB 930
- 820 IF X$ ="c" THEN NEWPOS =33: GOSUB 930
- 830 IF X$ ="v" THEN NEWPOS =34: GOSUB 930
- 840 IF X$ ="b" THEN NEWPOS =35: GOSUB 930
- 850 IF X$ ="n" THEN NEWPOS =36: GOSUB 930
- 860 IF X$ ="m" THEN NEWPOS =37: GOSUB 930
- 870 IF X$ ="," THEN NEWPOS =38: GOSUB 930
- 880 IF X$ ="." THEN NEWPOS =39: GOSUB 930
- 890 IF MISSES > MM THEN GOTO 1130
- 900 NP = NP + 1 : IF NP = NE THEN NP = 1
- 910 GOTO 430
- 920 REM
- 930 IF SIZE = 40 THEN 980
- 940 NEWPOS = 2*NEWPOS : LOCATE 23,OLDPOS,0:PRINT " ";
- 950 LOCATE 23,NEWPOS,0:PRINT CHR$(211);CHR$(189);
- 960 OLDPOS = NEWPOS
- 970 RETURN
- 980 LOCATE 23,OLDPOS,0 :PRINT " ";
- 990 LOCATE 23,NEWPOS,0 :PRINT CHR$(127);
- 1000 OLDPOS = NEWPOS
- 1010 RETURN
- 1020 SOUND 15000,1 :SOUND 10000,1 :SOUND 5000,1
- 1030 MISSES = MISSES + 1
- 1040 LOCATE 1,RM+11,0 : PRINT MM-MISSES+1;
- 1050 RE(N) = RND*LV + SLV : CE(N) = RND*RPOS + RS
- 1060 MT = RND*9 + 1
- 1070 MV(N) = VM(MT) : MC(N) = CM(MT)
- 1080 LOCATE RE(N),CE(N),0 :PRINT CHR$(MC(N));
- 1090 RETURN
- 1100 SOUND 2000,1 : SOUND 1000,1
- 1110 HITS = HITS + MV(NP) : LOCATE 1,SC+6,0 : PRINT HITS;
- 1120 RETURN
- 1130 REM levels of achievement
- 1140 IF HITS < F*10 THEN FOR I = 370 TO 300 STEP -3: SOUND I,1 :NEXT :GOTO 1210
- 1150 IF HITS < F*60 THEN FOR I = -8 TO 10 STEP 1 : SOUND 420 + I*ABS(I),1 :NEXT :GOTO 1210
- 1160 IF HITS < F*100 THEN PLAY "o3cco2cc" :GOTO 1210
- 1170 IF HITS < F*150 THEN PLAY "o3msl4t210ceeemnl2c" :GOTO 1210
- 1180 IF HITS < F*200 THEN FOR I = 10000 TO 2700 STEP -53:SOUND I,1:NEXT I :GOTO 1210
- 1190 IF HITS < F*250 THEN PLAY "l2o4cdefgl4gggo5l1c":GOTO 1210
- 1200 IF HITS > F*250 THEN GOSUB 1620
- 1210 LOCATE 3,1,0 : INPUT "GAME OVER press return to continue ",X$
- 1215 IF SIZE = 40 THEN GOSUB 1230 ELSE GOSUB 1390
- 1220 GOTO 200
- 1230 WIDTH 40 : CLS :PRINT
- 1240 SIZE = 40 : RPOS = 38 : SC = 1: RM = 20 : RS = 1
- 1250 PRINT " CATCH88" : PRINT
- 1260 PRINT "The object of the game is to catch 'em"
- 1270 PRINT " before they fall."
- 1280 PRINT
- 1290 PRINT : PRINT " ";CHR$(25);" is worth 1 point."
- 1300 PRINT " ";CHR$(157);" is worth 2 points."
- 1310 PRINT " ";CHR$(15);" is worth 3 points."
- 1320 PRINT " ";CHR$(2);" is worth 5 points."
- 1330 PRINT : PRINT : PRINT " A capital Q will stop the game."
- 1340 PRINT : PRINT
- 1350 PRINT " Choose a suitable level of play :"
- 1360 PRINT :PRINT
- 1370 PRINT "e(asy m(edium h(ard v(ery hard Q(uit ";
- 1380 RETURN
- 1390 WIDTH 80 : CLS : SIZE = 80 : RPOS = 77 : SC = 10 : RM = 50:RS = 2
- 1400 PRINT
- 1410 PRINT SPC(19) " [[[[ [[[ [[[[[ [[[[ [ [ [[[ [[[ "
- 1420 PRINT SPC(19) "[ [ [ [ [ [ [ [ [ [ ["
- 1430 PRINT SPC(19) "[ [ [ [ [ [ [ [ [ [ ["
- 1440 PRINT SPC(19) "[ [[[[[ [ [ [[[[[ [[[ [[[ "
- 1450 PRINT SPC(19) "[ [ [ [ [ [ [ [ [ [ ["
- 1460 PRINT SPC(19) "[ [ [ [ [ [ [ [ [ [ ["
- 1470 PRINT SPC(19) " [[[[ [ [ [ [[[[ [ [ [[[ [[[ "
- 1480 PRINT
- 1490 PRINT SPC(21) "The object of the game is to catch 'em"
- 1500 PRINT SPC(21) " before they fall."
- 1510 PRINT
- 1520 PRINT : PRINT SPC(29) CHR$(25);" is worth 1 point."
- 1530 PRINT SPC(29) CHR$(157);" is worth 2 points."
- 1540 PRINT SPC(29) CHR$(15);" is worth 3 points."
- 1550 PRINT SPC(29) CHR$(2);" is worth 5 points."
- 1560 PRINT : PRINT : PRINT SPC(24) "A capital Q will stop the game."
- 1570 PRINT
- 1580 PRINT SPC(24) "Choose a suitable level of play :"
- 1590 PRINT :PRINT SPC(19) "e(asy m(edium h(ard v(ery hard Q(uit";
- 1600 LOCATE 12,1,0
- 1610 RETURN
- 1620 CLS : PRINT :PRINT " I really did'nt think anyone was"
- 1630 PRINT "that fast. Rescaling ....":PRINT :PRINT:FOR I = 1 TO 2000:NEXT
- 1640 SOUND 37,180:FOR I = 1 TO 14000:NEXT:SOUND 37,0
- 1650 F = F*2 :PRINT "Next time you run this program,"
- 1660 PRINT "press the letter r before you"
- 1670 PRINT "enter a 4 or 8. My very best luck."
- 1680 PRINT :PRINT " RKC"
- 1690 RETURN
- 3000 INPUT "Enter your factor number ",F
- 3001 IF F > 5 THEN PRINT "Be reasonable !" : GOTO 3000
- 3002 RETURN
-